home *** CD-ROM | disk | FTP | other *** search
- Subject: v13i102: Multi-user conferencing system, Part05/05
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Keith Gabryelski <ag@crash.cts.com>
- Posting-number: Volume 13, Issue 102
- Archive-name: conf/part05
-
- #! /bin/sh
- # This is a shell archive, meaning:
- # 1. Remove everything above the #! /bin/sh line.
- # 2. Save the resulting text in a file.
- # 3. Execute the file with /bin/sh (not csh) to create the files:
- # doc
- export PATH; PATH=/bin:$PATH
- if test ! -d 'doc'
- then
- mkdir 'doc'
- fi
- cd 'doc'
- if test -f 'confhelp'
- then
- echo shar: will not over-write existing file "'confhelp'"
- else
- cat << \SHAR_EOF > 'confhelp'
- Help File for conf. (/usr/lib/conf/confhelp)
-
- Conf is a line oriented multi-user chat program designed to work on any
- SysV, BSD, or Xenix system.
-
- Conf has several advantages over the standard write program supplied
- with most Unix and Xenix operating systems.
-
- o Unlimited users conferencing at once.
-
- o 100 separate discussion lines.
-
- o Public and private messages in addition to password
- encrypted messages.
-
- o Quick and efficient user interaction.
-
- o User definable formats for messages.
-
- o Intelligent message display algorithm.
-
- A brief description of COLON commands is given below. To learn more about
- conf, type "man conf" at your shell prompt or ":!man conf" from within conf.
-
- :cls {no options}
- Clear the screen.
-
- :exit or :quit {comments}
- Leave conference.
-
- :from FILENAME
- Take message from file.
-
- :help [COMMAND]
- Print lots of help about a given command. Default prints entire help
- file.
-
- :record [FILENAME]
- Start recording conference messages to the file specified. If no file
- is specified and you are not current recording, the default file will be
- used otherwise the currently record file will be closed and you will
- stop recording.
-
- :reply MESSAGE
- Reply to last message sent privately. With no args, reply will print
- the user and tty to send to.
-
- :ring USER1 [, USER2, ...]
- Invite specified users to join you on conf.
-
- :send {[USER][, /LINENUMBER][, :TTYNAME][, ...]} MESSAGE
- Send a private message to a username, ttyname, or line number.
- When listing a linenumber, the number must be proceeded by a
- slash '/'. When listing a ttyname, the ttyname must be procceded
- by a colon ':'.
-
- :set {[(no)OPTION][, OPTION=VALUE | OPTION="STRING VALUES"
- Set a flag or option. If no argument if given to a numeric or
- string option, the current value will be displayed.
-
- :shell {no options}
- Invoke preferred shell.
-
- :shout MESSAGE
- Send a message to all terminals logged in to conf. Don't use this
- command thoughtlessly.
-
- :to LINENUMBER
- Switch to a new conference line (1 - 100). If no argument is given,
- your current conference line will be displayed.
-
- :who LINENUMBER
- List users on conference. With no args, all conference lines are
- displayed. Who will list users names, ttys, and what lines they
- are on. If a users name is proceeded by an asterisk '*', that
- user is currently recording.
-
- :version {no options}
- Print the current version of conf and some credits.
-
- :? [COMMAND]
- Little help. Just print the usage line for a given colon command.
- If no argument is given conf will displays the names of all commands
- available to the user.
- SHAR_EOF
- fi # end of overwriting check
- if test -f 'READ_ME'
- then
- echo shar: will not over-write existing file "'READ_ME'"
- else
- cat << \SHAR_EOF > 'READ_ME'
- CONF - READ_ME
-
- 1 Edit config.h and modify anything that looks likes it needs it.
- 2 Edit Makefile and modify anything that needs it.
- 3 make
- 4 make install
- 5 rehash
- 6 conf
-
- Conf should be running.
-
- Problems:
-
- Symptom:
- Conf compiled fine, but messages are garbled.
-
- CHECK:
- Is MYCRYPT undefined? if it is, then you encrypt function
- will not work with conf. try defining MYCRYPT and recompiling.
-
- SHAR_EOF
- fi # end of overwriting check
- if test -f 'conf.1'
- then
- echo shar: will not over-write existing file "'conf.1'"
- else
- cat << \SHAR_EOF > 'conf.1'
- .TH CONF 1
- .SH NAME
- conf \- conference with other users.
- .SH SYNOPSIS
- .B conf
- [-w][-l linenumber][-s switch] username1 username2 ...
- .SH DESCRIPTION
- Conf is a line oriented multi-user chat program designed to work on any
- SysV, BSD, or Xenix system.
- .PP
- Conf has several advantages over the standard write program supplied with
- most Unix and Xenix operating systems.
- .RS
- .TP
- o
- There can be effectively an unlimited number of users conferencing at once.
- .TP
- o
- Some users of conf may elect to conference on a separate line to avoid
- confusion with other discussions. There are 100 such lines called
- "conference lines".
- .TP
- o
- Messages that conf users may send may be specific to a line,
- a user, a tty, or to all users currently on conf (see COLON COMMANDS; reply,
- send, and shout). Messages may also be encrypted using the a public or
- private password so other users may not decipher the contents of a message
- (see SECURITY).
- .TP
- o
- Conf automaticly keeps track of who is on conf, what line they are on,
- and if they are recording messages. This allows users to quickly find
- out who is using conf and how to send a message to them directly (see
- COLON COMMANDS; who).
- .TP
- o
- Conf allows its users to distinguish between, user messages (known as "Normal
- Messages"), private messages (known as "Send Messages"), system messages
- (known as "Information Messages"), messages to a line that the sending users
- is not on (known as "Line Messages"), and messages to all users (Known as
- "Shout Messages"). Conf also allows its users to set the type-out mode of any
- of the message types to a user pleasant format that may or may not
- include the from-user's name, tty, or message, or the to-user's name or
- tty (see MESSAGES TYPES and MESSAGES FORMATS).
- .TP
- o
- Conf will print messages only when it will not garbage the screen, so
- the user need not worry that a message may come in during the middle
- of a long reply. The message will be "held" until the users has sent
- the message (or otherwise cleared the input buffer).
- .SH SWITCHES
- .TP
- .BI \-l " line number"
- Set startup line. The default is 1.
- .TP
- .BI \-s " switch"
- Set option [switch] to the given value. (see OPTIONS)
- .TP
- .BI \-w " line number"
- Display who is using conf on the specified line. If no line number is
- given, conf with display all users that are currently on conf.
- .TP
- .I username
- Ring
- .I "username"
- to join conf.
- .SH OPTIONS
- There are three types of options,
- .I "boolean, numeric,"
- and
- .I string.
- Options may be specified in a "rc file" called .confrc in the users home
- directory, the environment variable CONFOPTS, as parameters to conf
- using the -s switch, and while running conf with the colon
- command "set". In any case, options are separated by commas, and
- may be shortened to the least ambiguous string.
- .TP
- .BI "Boolean Options:"
- Boolean options are set by putting their names the appropriate list.
- Boolean options may be reset by proceeding their name with a '!' or
- the word "no". (i.e. "foo" sets the boolean option "foo", "!foo" or
- "nofoo" would negate (reset) the option "foo")
- .RS
- .PP
- .B askdump
- .RS
- If set, conf will ask if it should dump core if it catches a fatal signal.
- If negated (proceeded by "no") and conf catches a fatal signal, conf will
- inform the user of the fatal signal and will clean-up all used files,
- reset the original terminal characteristics and exit without dumping core.
- .RE
- .PP
- .B autowho
- .RS
- If set, conf will do the colon command "who" after startup and log in.
- No :who will be done if this option is negated.
- .RE
- .PP
- .B banner
- .RS
- If set, conf will display its version number and credits when the user
- logs in.
- .RE
- .PP
- .B beep
- .RS
- If set, conf will beep (send a ctrl-G [^G]) when a message
- is displayed on your terminal.
- .RE
- .PP
- .B lineinput
- .RS
- If set, conf will not echo characters as you type them.
- This option is useful if running conf as a subprocess of emacs (see
- CONF AND EMACS).
- .RE
- .PP
- .B expandctrl
- .RS
- If set, conf will expand control characters to a user
- visible string (e.g. ctrl-X would be printed as ^X). If this option is
- negated, all control characters will be passed to the user without
- modification.
- .RE
- .PP
- .B expand8bit
- .RS
- If set, conf will expand any character with bit 7 set
- to a user visible string (e.g. Meta-X would be printed as ~X).
- .RE
- .PP
- .B seeme
- .RS
- If set, the conf will display any "Normal Message" typed by you. If
- this option is negated, conf will not display "Normal Messages"
- by you. (see MESSAGE TYPES).
- .RE
- .PP
- .B seemyinform
- .RS
- If set, conf will display "Information Messages" by you. If this option
- is negated, conf will ignore "Information Messages" by you.
- (see MESSAGE TYPES).
- .RE
- .PP
- .B warncrypt
- .RS
- If set, conf will warn the user if a crypted message passes the users
- terminal. If negated conf will ignore any messages that is encrypted.
- .RE
- .PP
- Sample: noaskdump,noautowho,banner,nobeep,noseeme,warncrypt
- .PP
- Will set
- .B banner
- and
- .B warncrypt
- , but will reset
- .B "askdump, autowho, beep, and seeme."
- .RE
- .PP
- .B "Numeric Options:"
- Numeric options have the form option=number.
- .RS
- .PP
- .B line
- .RS
- Conference line number to use.
- .RE
- .PP
- .B columns
- .RS
- Screen width in characters.
- .RE
- .PP
- .B lines
- .RS
- Screen length in lines.
- .RE
- .PP
- Sample: line=2,columns=125,lines=50
- .PP
- Will set
- .B "line = 2, columns = 125, and lines = 50"
- .RE
- .PP
- .B "String Options:"
- String options take the form option=string or option="space filled string".
- .RS
- .PP
- .B cls
- .RS
- Clear screen string.
- .RE
- .PP
- .B name
- .RS
- Your conference name.
- .RE
- .PP
- .B inform-format
- .RS
- Display format for information messages. (see MESSAGE FORMATS)
- .RE
- .PP
- .B normal-format
- .RS
- Display format for normal messages. (see MESSAGE FORMATS)
- .RE
- .PP
- .B send-format
- .RS
- Display format for private sends. (see MESSAGE FORMATS)
- .RE
- .PP
- .B shout-format
- .RS
- Display format for display shouts. (see MESSAGE FORMATS)
- .RE
- .PP
- .B line-format
- .RS
- Display format for display line sends. (see MESSAGE FORMATS)
- .RE
- .PP
- .B password
- .RS
- Password to use for encrypted messages. If you do not supply an
- argument to this option the default string, "Pax", will be used.
- (see SECURITY)
- .RE
- .PP
- .B recfile
- .RS
- Default record file.
- .RE
- .PP
- Sample: cls="\\026",name=Aggy,password=Peace
- .PP
- Will set
- .B "cls = ``^Z'', name = ``Aggy'', and password = ``Peace''"
- .RE
- .SH RC FILE
- This file contains lists of options and their values or colon commands to
- execute before logging into conf. Blank lines as well as lines beginning
- with a '#' or ';' are ignored.
- .PP
- Colon commands that require the user to be logged in to execute are invalid
- in the .confrc file. (e.g., :send, :shout, and :record).
- .PP
- A typical RC file might look like this:
- .PP
- .nf
- #
- # This file is .confrc which you can find in my home directory.
- #
-
- :cls
- name = "Ag"
- pager = "/usr/local/bin/less"
- shell = "/bin/tcsh"
- warncrypt, banner, lines = 25, columns = 80
-
- # End of Confrc file.
-
- .fi
- .SH ENVIRONMENT VARIABLE
- Conf recognizes several shell variables for defining preferences.
- .PP
- .RS
- .B CONFOPTS
- .RS
- This environment variable holds a list of options and their values. A
- typical environment variable might look like this:
- .PP
- CONFOPTS=banner,name="Ag",columns=80
- .RE
- .PP
- .B SHELL
- .RS
- Your preferred shell. (e.g. SHELL=/bin/sh)
- .RE
- .PP
- .B PG
- .RS
- Your preferred pager. (e.g. PG=/usr/local/bin/less)
- .RE
- .PP
- .B TERM
- .RS
- Your terminal's name. (e.g. TERM=tvi950)
- .RE
- .PP
- .B COLUMNS
- .RS
- The number of columns your terminal has. This environment variable will
- override the columns set by termcap. This should only be used if your terminal
- has a non standard column length or USE_TERMCAP was not defined at compile
- time. (e.g. COLUMNS=100)
- .RE
- .PP
- .B LINES
- .RS
- Number of lines on your terminal. This environment variable will override
- the lines set by termcap. This should only be used if your terminal
- has a non standard line length or USE_TERMCAP was not defined at compile
- time. (e.g. LINES=100)
- .RE
- .PP
- .B CLS
- .RS
- Preferred clear screen string for your terminal. This environment variable
- will override the clear screen string set by termcap. This should only be
- used if USE_TERMCAP was not defined at compile time. (e.g. CLS="^]*")
- .RE
- .RE
- .SH MESSAGE TYPES
- There are several types of messages you can receiving while using conf.
- .PP
- .B "Normal Messages:"
- are messages that the user sends to all users on his current line number.
- These messages use the current password and get displayed on any users
- terminal which knows the current password. You can send a
- .B "normal messages"
- by simply typing a line and pressing return while inside conf. Users
- may filter Normal Messages by themselves by resetting the
- .B seeme
- variable.
- .PP
- .B "Information Messages:"
- are system messages about a certain user. Login, Logouts, and line
- switching are all forms of
- .B "Information Messages."
- Information messages are automaticly sent to all users that are affected
- by a certain users actions. Users may filter Information Messages by
- themselves by resetting the
- .b seemyinform
- variable.
- .PP
- .BI "Send Messages:"
- are messages sent to a specific user, tty, or line number. They are sent
- by using the colon command "send" (see COLON COMMANDS)
- .SH MESSAGE FORMAT
- You may personalize the way conf prints different messages by
- modifying the appropriate format string. A format string consists of
- a null terminated string will text and meta characters. Conf interprets
- meta characters as follows.
- .RS
- .TP
- .B %N
- Your conference name.
- .TP
- .B %n
- Name of user sending message.
- .TP
- .B %m
- Message users sent.
- .TP
- .B %T
- Your tty.
- .TP
- .B %t
- Tty of user that sent message.
- .TP
- .B %%
- The character '%'
- .RE
- .PP
- If you wanted normal messages to print only the messages itself you
- would :set normal-format ="%m^J". If you wanted sends to be display with
- only the username of the person sending the messages and the messages itself,
- you would :set send-format ="%n - %m".
- .SH COLON COMMANDS
- Any line whose first character is a colon (':') and whose second character
- *is not* a colon will be interpreted as a "Colon command". A list of colon
- commands follows.
- .RS
- .PP
- .B ":cls"
- .RS
- .PP
- Clear the screen.
- .RE
- .PP
- .B ":exit"
- or
- .B ":quit"
- .RS
- .PP
- Leave conference.
- .RE
- .PP
- .BI ":from" " filename"
- .RS
- .PP
- Take message from file.
- .RE
- .PP
- .BI ":help" " command"
- .RS
- .PP
- Print lots of help about a given command. Default prints entire help file.
- .RE
- .PP
- .BI ":record" " filename"
- .RS
- .PP
- Start recording conference messages to the file specified. If no file is
- specified and you are not current recording, the default file will be
- used otherwise the currently record file will be closed and you will stop
- recording.
- .RE
- .PP
- .BI ":reply" " message"
- .RS
- .PP
- Reply to last message sent privately. With no args, reply will print the
- user and tty to send to.
- .RE
- .PP
- .BI ":ring" " user1, user2, ..."
- .RS
- .PP
- Invite specified users to join you on conf.
- .RE
- .PP
- .BI ":send" " user, /linenumber, :ttyname,... message"
- .RS
- .PP
- Send a private message to a username, ttyname, or line number. When listing
- a linenumber, the number must be proceeded by a slash '/'. When listing a
- ttyname, the ttyname must be procceded by a colon ':'.
- .RE
- .PP
- .BI ":set" " [no]option, option=value"
- .RS
- .PP
- Set a flag or option. If no argument if given to a numeric or string
- option, the current value will be displayed.
- .RE
- .PP
- .B ":shell"
- .RS
- .PP
- Invoke preferred shell.
- .RE
- .PP
- .BI ":shout" " message"
- .RS
- .PP
- Send a message to all terminals logged in to conf. Don't use this
- command thoughtlessly. A frequent use on our system is ":shout Everyone
- off of conf, I'm installing a version without bugs!". :-)
- .RE
- .PP
- .BI ":to" " line number"
- .RS
- .PP
- Switch to a new conference line (1 - 100). If no argument is given,
- your current conference line will be displayed.
- .RE
- .PP
- .BI ":who" " line number"
- .RS
- .PP
- List users on conference. With no args, all conference lines are displayed.
- Who will list users names, ttys, and what lines they are on. If a users
- name is proceeded by an asterisk '*', that user is currently recording.
- .RE
- .PP
- .B ":version"
- .RS
- .PP
- Print the current version of conf and some credits.
- .RE
- .PP
- .BI ":?" " command"
- .RS
- .PP
- Little help. Just print the usage line for a given colon command. If no
- argument is given conf will displays the names of all commands available to
- the user.
- .RE
- .RE
- .SH LINE EDITING
- Conf supports limited line editing features. While you are typing a line,
- the following "control" characters will be interpreted as line editing
- characters:
- .PP
- (A character proceeded by a caret '^' symbolize control characters. You
- must hold down the "Control key" and press the given letter to get these
- characters)
- .RS
- .TP
- .B "^C"
- Abort this line.
- .TP
- .B "^D"
- If this is the first character on the line, conf will log you out.
- .TP
- .B "^H, DEL"
- Delete the last character typed.
- .TP
- .B "^J, ^M"
- End of line. Conf will its voodoo on this line.
- .TP
- .B "^L"
- Clear screen and display current line.
- .TP
- .B "^Q, ^S"
- X-ON , X-OFF is you have them set.
- .TP
- .B "^R"
- CRLF and reprint line.
- .TP
- .B "^W"
- Delete last word.
- .TP
- .B "^Z"
- Stop process (if supported on your system).
- .RE
- .SH ELEPHANT TALK
- There is a jargon that goes along with online tty communication. The
- list that follows will give you an idea of how to interpret local
- jargoneese. (Stolen, without permission from MIT's OZ:<COMMON>:JARGON.TXT)
- .RS
- .TP
- .B "Ack!"
- Term of disgust (from Bill the Cat's, "Ackphtft!")
- .TP
- .B BCNU
- Be seeing you.
- .TP
- .B BTW
- By the way...
- .TP
- .B "Bye?"
- Are you ready to logout? (This is the standard way to end a conference;
- the other users type BYE to confirm, or else continue the conversation.)
- .TP
- .B CUL
- See you later. Variation: "CULater"
- .TP
- .B "Foo?"
- A greeting, also meaning R U THERE? Used to confirm a if a user is at
- the terminal. Also meaning, "What's up?".
- .TP
- .B FYI
- For your information...
- .TP
- .B "Hello-p"
- A greeting, also meaning R U THERE? (An instance of the "-P" convention.)
- .TP
- .B MtFBWY
- May the Force be with you. (From Star Wars.)
- .TP
- .B Nil
- No.
- .TP
- .B OBTW
- Oh, by the way...
- .TP
- .B "R U There?"
- Are you there?
- .TP
- .B Sec
- Wait a second (sometimes written SEC...).
- .TP
- .B T
- Yes.
- .TP
- .B TNX
- Thanks.
- .TP
- .B "TNX 1.0E6"
- Thanks a million (humorous).
- .TP
- .B "/\\\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\"
- The equivalent of a giggle.
- .TP
- .B [message]
- A message surrounded by square brackets "[]" is considered for
- information purposes or for explaining a users physical expression.
- Typical examples include:
- .RS
- .TP
- .B [Chuckle]
- The users is amused.
- .TP
- .B [Confused]
- The user is confused on a particular subject.
- .TP
- .B [Sigh]
- To indicate a sadness or "Sigh of relief".
- .TP
- .B [To Restroom]
- The user will be away from the screen to take care of some business.
- .RE
- .RE
- .SH SECURITY
- You may set your encryption password with the :set password command. This
- will allow you to communicate with other users that have their password set
- to the same as you in complete privacy.
- .PP
- These messages will show up on other users terminals as [Encrypted Message]
- if the users has warncrypt set.
- .PP
- The default password is "Pax" and is used as the encryption password for
- sends and normal messages when you have your password set to the default.
- .PP
- If you set your password in your .confrc file, remember to set the read/write
- mode of that file so that unwanted users cannot read the file. Same should
- hold true for setting a new password in the CONFOPTS environment variable.
- .PP
- You should not set your password by using command line switches. Someone
- could possibly catch your password when they do a ps by reading the arguments
- to the conf you are executing. This may be taken care of in
- later releases of conf.
- .SH CONF AND EMACS
- .B conf.el
- The conf users of conf are provided with a emacs lisp function that will
- allow them to run conf as a subprocess of emacs (if they compiled emacs
- with #define SUBPROCESSES). This gives the users several added features
- that they would not normally have without emacs.
- .RS
- .TP
- o
- The user may receive messages while he/she is typing messages.
- .TP
- o
- Emacs will keep a transaction of all messages in the buffer "*conference*"
- which previous sends can be looked at if they were missed.
- .TP
- o
- Auto-fill of incoming messages.
- .TP
- o
- The "warm-fuzzy" -- emacs full screen editing.
- .RE
- .PP
- To use conf.el, copy it (probably from /usr/lib/conf/conf.el) into
- your .emacs file and M-X conference.
- .SH FILES
- .RS
- .PP
- /usr/lib/conf/confhelp - Help file.
- .PP
- /usr/lib/conf/conflog - Messages transaction file.
- .PP
- /usr/lib/conf/confusers - User log file.
- .RE
- .SH BUGS
- .B "Known Bugs:"
- .RS
- If a SIG_INT (^C) is done while messages are being saved to the record file,
- parts of the messages may be hacked off. This is a feature. fnord.
- .PP
- Currently all message buffers that are encrypted (all but inform and shout)
- are multiples of 8 bytes long. They are not padded and are not zeroed, so
- if someone were to hack on the conflog file to decipher messages, they
- may get tidbits (up to 7 chars) of the previous messages.
- .PP
- Currently, sends are encrypted using the default password (so you may send
- to someone who doesn't know the password you are using.) Someone *could*
- hack on the conflog and decipher the private sends.
- .PP
- I'm not too worried about the last two bugs. It would take much work if
- someone were to try to hack on the conflog file for either
- attempt. The users, may opt to use normal-messages and set their password
- to something besides the default. That is the safest form of message transfer
- I can think of.
- .PP
- Both these problems should be taken care of in later releases.
- .PP
- You can fake a message coming from a certain user if you know how someone
- has their format strings setup.
- .PP
- I am open to suggestions for anything.
- .PP
- .RE
- .B "Reporting bugs or suggestions:"
- .RS
- Please do not bother the net with bug reports/fixes. Send any bugs
- reports, fixes, or improvements to the author directly (ag@portnoy.cts.com or
- ag@crash.cts.com). I am always open to coherent suggestions or comments.
- Send me your gripes ... The worst I could do is ignore them :-).
- .RE
- .SH IMPROVEMENTS
- Several things are in the works. I have listed some major and minor
- improvements below.
- .PP
- This documentation.
- .PP
- Online documentation should include information about variables and
- more information about HOW TO.
- .PP
- A better way to handle passwords. probably involving conf keeping a
- password list. That is, you would be able decipher any encrypted messages
- that you had a password for in your list, instead of only being able to
- decrypt one type of encrypted message at a time.
- .PP
- There should be a way to set default settings for strings. So,
- if a user user really spazzes, they may reset to defaults. This can be taken
- care of (now) by logging out and re-logging into conf.
- .PP
- A Remote conf is being thought of, ideas here would be
- appreciated. Maybe conf could be a service on the remote site which would
- copy any file activity to the local site. Re-organizing the conflog structs
- to work on any machine would have to be done.
- .PP
- The confusers files should be done with shared memory (if the system has it).
- This would allow conf to update the "memory" with information like idle time
- and such. The biggest problem with conf is that users cannot tell if a person
- is in the middle of typing a message or if a user has been shot and is slumped
- over the keys. I would think that this type of information would load the
- system down too much to do in a shared file, so idle time will be done in
- shared memory only. If anyone has any suggestions ...
- .PP
- :ignore user/tty/sends/shouts will be implemented someday.
- .PP
- Some way of hi-lighting text, probably using cryptic escape sequences.
- There is a definite need for highlighting in the format strings. People
- can fake messages from others. This can easily be overcome by changing the
- format string.
- .PP
- Format strings should be checked for validity. Check '%m' and a linefeed
- at the end and warn if they don't exist.
- .SH AUTHOR
- .RS
- .PP
- Keith M. Gabryelski (ag@portnoy.cts.com)
- .PP
- Special thanks to:
- .RS
- .PP
- Michael Ditto (ford@kenobi.cts.com)
- .PP
- Paul Palacios (paul@portnoy.cts.com)
- .RE
- .RE
- SHAR_EOF
- fi # end of overwriting check
- if test -f 'conf.txt'
- then
- echo shar: will not over-write existing file "'conf.txt'"
- else
- cat << \SHAR_EOF > 'conf.txt'
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- NAME
- conf - conference with other users.
-
- SYNOPSIS
- conf [-w][-l linenumber][-s switch] username1 username2 ...
-
- DESCRIPTION
- Conf is a line oriented multi-user chat program designed to
- work on any SysV, BSD, or Xenix system.
-
- Conf has several advantages over the standard write program
- supplied with most Unix and Xenix operating systems.
-
- o There can be effectively an unlimited number of
- users conferencing at once.
-
- o Some users of conf may elect to conference on a
- separate line to avoid confusion with other
- discussions. There are 100 such lines called
- "conference lines".
-
- o Messages that conf users may send may be specific
- to a line, a user, a tty, or to all users
- currently on conf (see COLON COMMANDS; reply,
- send, and shout). Messages may also be encrypted
- using the a public or private password so other
- users may not decipher the contents of a message
- (see SECURITY).
-
- o Conf automaticly keeps track of who is on conf,
- what line they are on, and if they are recording
- messages. This allows users to quickly find out
- who is using conf and how to send a message to
- them directly (see COLON COMMANDS; who).
-
- o Conf allows its users to distinguish between, user
- messages (known as "Normal Messages"), private
- messages (known as "Send Messages"), system
- messages (known as "Information Messages"),
- messages to a line that the sending users is not
- on (known as "Line Messages"), and messages to all
- users (Known as "Shout Messages"). Conf also
- allows its users to set the type-out mode of any
- of the message types to a user pleasant format
- that may or may not include the from-user's name,
- tty, or message, or the to-user's name or tty (see
- MESSAGES TYPES and MESSAGES FORMATS).
-
- o Conf will print messages only when it will not
- garbage the screen, so the user need not worry
- that a message may come in during the middle of a
- long reply. The message will be "held" until the
-
-
-
- Page 1 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- users has sent the message (or otherwise cleared
- the input buffer).
-
- SWITCHES
- -l line number
- Set startup line. The default is 1.
-
- -s switch
- Set option [switch] to the given value. (see OPTIONS)
-
- -w line number
- Display who is using conf on the specified line. If no
- line number is given, conf with display all users that
- are currently on conf.
-
- username
- Ring username to join conf.
-
- OPTIONS
- There are three types of options, boolean, numeric, and
- string. Options may be specified in a "rc file" called
- .confrc in the users home directory, the environment
- variable CONFOPTS, as parameters to conf using the -s
- switch, and while running conf with the colon command "set".
- In any case, options are separated by commas, and may be
- shortened to the least ambiguous string.
-
- Boolean Options:
- Boolean options are set by putting their names the
- appropriate list. Boolean options may be reset by
- proceeding their name with a '!' or the word "no".
- (i.e. "foo" sets the boolean option "foo", "!foo" or
- "nofoo" would negate (reset) the option "foo")
-
- askdump
- If set, conf will ask if it should dump core if it
- catches a fatal signal. If negated (proceeded by
- "no") and conf catches a fatal signal, conf will
- inform the user of the fatal signal and will
- clean-up all used files, reset the original
- terminal characteristics and exit without dumping
- core.
-
- autowho
- If set, conf will do the colon command "who" after
- startup and log in. No :who will be done if this
- option is negated.
-
- banner
- If set, conf will display its version number and
- credits when the user logs in.
-
-
-
-
- Page 2 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- beep
- If set, conf will beep (send a ctrl-G [^G]) when a
- message is displayed on your terminal.
-
- lineinput
- If set, conf will not echo characters as you type
- them. This option is useful if running conf as a
- subprocess of emacs (see CONF AND EMACS).
-
- expandctrl
- If set, conf will expand control characters to a
- user visible string (e.g. ctrl-X would be printed
- as ^X). If this option is negated, all control
- characters will be passed to the user without
- modification.
-
- expand8bit
- If set, conf will expand any character with bit 7
- set to a user visible string (e.g. Meta-X would be
- printed as ~X).
-
- seeme
- If set, the conf will display any "Normal Message"
- typed by you. If this option is negated, conf
- will not display "Normal Messages" by you. (see
- MESSAGE TYPES).
-
- seemyinform
- If set, conf will display "Information Messages"
- by you. If this option is negated, conf will
- ignore "Information Messages" by you. (see
- MESSAGE TYPES).
-
- warncrypt
- If set, conf will warn the user if a crypted
- message passes the users terminal. If negated
- conf will ignore any messages that is encrypted.
-
- Sample:
- noaskdump,noautowho,banner,nobeep,noseeme,warncrypt
-
- Will set banner and warncrypt , but will reset askdump,
- autowho, beep, and seeme.
-
- Numeric Options: Numeric options have the form
- option=number.
-
- line
- Conference line number to use.
-
- columns
- Screen width in characters.
-
-
-
- Page 3 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- lines
- Screen length in lines.
-
- Sample: line=2,columns=125,lines=50
-
- Will set line = 2, columns = 125, and lines = 50
-
- String Options: String options take the form option=string
- or option="space filled string".
-
- cls
- Clear screen string.
-
- name
- Your conference name.
-
- inform-format
- Display format for information messages. (see
- MESSAGE FORMATS)
-
- normal-format
- Display format for normal messages. (see MESSAGE
- FORMATS)
-
- send-format
- Display format for private sends. (see MESSAGE
- FORMATS)
-
- shout-format
- Display format for display shouts. (see MESSAGE
- FORMATS)
-
- line-format
- Display format for display line sends. (see
- MESSAGE FORMATS)
-
- password
- Password to use for encrypted messages. If you do
- not supply an argument to this option the default
- string, "Pax", will be used. (see SECURITY)
-
- recfile
- Default record file.
-
- Sample: cls="\026",name=Aggy,password=Peace
-
- Will set cls = ``^Z'', name = ``Aggy'', and password =
- ``Peace''
-
- RC FILE
- This file contains lists of options and their values or
- colon commands to execute before logging into conf. Blank
-
-
-
- Page 4 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- lines as well as lines beginning with a '#' or ';' are
- ignored.
-
- Colon commands that require the user to be logged in to
- execute are invalid in the .confrc file. (e.g., :send,
- :shout, and :record).
-
- A typical RC file might look like this:
-
- #
- # This file is .confrc which you can find in my home directory.
- #
-
- :cls
- name = "Ag"
- pager = "/usr/local/bin/less"
- shell = "/bin/tcsh"
- warncrypt, banner, lines = 25, columns = 80
-
- # End of Confrc file.
-
-
- ENVIRONMENT VARIABLE
- Conf recognizes several shell variables for defining
- preferences.
-
- CONFOPTS
- This environment variable holds a list of options
- and their values. A typical environment variable
- might look like this:
-
- CONFOPTS=banner,name="Ag",columns=80
-
- SHELL
- Your preferred shell. (e.g. SHELL=/bin/sh)
-
- PG
- Your preferred pager. (e.g.
- PG=/usr/local/bin/less)
-
- TERM
- Your terminal's name. (e.g. TERM=tvi950)
-
- COLUMNS
- The number of columns your terminal has. This
- environment variable will override the columns set
- by termcap. This should only be used if your
- terminal has a non standard column length or
- USE_TERMCAP was not defined at compile time.
- (e.g. COLUMNS=100)
-
- LINES
-
-
-
- Page 5 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- Number of lines on your terminal. This
- environment variable will override the lines set
- by termcap. This should only be used if your
- terminal has a non standard line length or
- USE_TERMCAP was not defined at compile time.
- (e.g. LINES=100)
-
- CLS
- Preferred clear screen string for your terminal.
- This environment variable will override the clear
- screen string set by termcap. This should only be
- used if USE_TERMCAP was not defined at compile
- time. (e.g. CLS="^]*")
-
- MESSAGE TYPES
- There are several types of messages you can receiving while
- using conf.
-
- Normal Messages: are messages that the user sends to all
- users on his current line number. These messages use the
- current password and get displayed on any users terminal
- which knows the current password. You can send a normal
- messages by simply typing a line and pressing return while
- inside conf. Users may filter Normal Messages by themselves
- by resetting the seeme variable.
-
- Information Messages: are system messages about a certain
- user. Login, Logouts, and line switching are all forms of
- Information Messages. Information messages are automaticly
- sent to all users that are affected by a certain users
- actions. Users may filter Information Messages by
- themselves by resetting the variable.
-
- Send Messages: are messages sent to a specific user, tty, or
- line number. They are sent by using the colon command
- "send" (see COLON COMMANDS)
-
- MESSAGE FORMAT
- You may personalize the way conf prints different messages
- by modifying the appropriate format string. A format string
- consists of a null terminated string will text and meta
- characters. Conf interprets meta characters as follows.
-
- %N Your conference name.
-
- %n Name of user sending message.
-
- %m Message users sent.
-
- %T Your tty.
-
- %t Tty of user that sent message.
-
-
-
- Page 6 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- %% The character '%'
-
- If you wanted normal messages to print only the messages
- itself you would :set normal-format ="%m^J". If you wanted
- sends to be display with only the username of the person
- sending the messages and the messages itself, you would :set
- send-format ="%n - %m".
-
- COLON COMMANDS
- Any line whose first character is a colon (':') and whose
- second character *is not* a colon will be interpreted as a
- "Colon command". A list of colon commands follows.
-
- :cls
-
- Clear the screen.
-
- :exit or :quit
-
- Leave conference.
-
- :from filename
-
- Take message from file.
-
- :help command
-
- Print lots of help about a given command. Default
- prints entire help file.
-
- :record filename
-
- Start recording conference messages to the file
- specified. If no file is specified and you are
- not current recording, the default file will be
- used otherwise the currently record file will be
- closed and you will stop recording.
-
- :reply message
-
- Reply to last message sent privately. With no
- args, reply will print the user and tty to send
- to.
-
- :ring user1, user2, ...
-
- Invite specified users to join you on conf.
-
- :send user, /linenumber, :ttyname,... message
-
- Send a private message to a username, ttyname, or
- line number. When listing a linenumber, the
-
-
-
- Page 7 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- number must be proceeded by a slash '/'. When
- listing a ttyname, the ttyname must be procceded
- by a colon ':'.
-
- :set [no]option, option=value
-
- Set a flag or option. If no argument if given to
- a numeric or string option, the current value will
- be displayed.
-
- :shell
-
- Invoke preferred shell.
-
- :shout message
-
- Send a message to all terminals logged in to conf.
- Don't use this command thoughtlessly. A frequent
- use on our system is ":shout Everyone off of conf,
- I'm installing a version without bugs!". :-)
-
- :to line number
-
- Switch to a new conference line (1 - 100). If no
- argument is given, your current conference line
- will be displayed.
-
- :who line number
-
- List users on conference. With no args, all
- conference lines are displayed. Who will list
- users names, ttys, and what lines they are on. If
- a users name is proceeded by an asterisk '*', that
- user is currently recording.
-
- :version
-
- Print the current version of conf and some
- credits.
-
- :? command
-
- Little help. Just print the usage line for a
- given colon command. If no argument is given conf
- will displays the names of all commands available
- to the user.
-
- LINE EDITING
- Conf supports limited line editing features. While you are
- typing a line, the following "control" characters will be
- interpreted as line editing characters:
-
-
-
-
- Page 8 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- (A character proceeded by a caret '^' symbolize control
- characters. You must hold down the "Control key" and press
- the given letter to get these characters)
-
- ^C Abort this line.
-
- ^D If this is the first character on the line, conf
- will log you out.
-
- ^H, DEL
- Delete the last character typed.
-
- ^J, ^M
- End of line. Conf will its voodoo on this line.
-
- ^L Clear screen and display current line.
-
- ^Q, ^S
- X-ON , X-OFF is you have them set.
-
- ^R CRLF and reprint line.
-
- ^W Delete last word.
-
- ^Z Stop process (if supported on your system).
-
- ELEPHANT TALK
- There is a jargon that goes along with online tty
- communication. The list that follows will give you an idea
- of how to interpret local jargoneese. (Stolen, without
- permission from MIT's OZ:<COMMON>:JARGON.TXT)
-
- Ack! Term of disgust (from Bill the Cat's, "Ackphtft!")
-
- BCNU Be seeing you.
-
- BTW By the way...
-
- Bye? Are you ready to logout? (This is the standard
- way to end a conference; the other users type BYE
- to confirm, or else continue the conversation.)
-
- CUL See you later. Variation: "CULater"
-
- Foo? A greeting, also meaning R U THERE? Used to
- confirm a if a user is at the terminal. Also
- meaning, "What's up?".
-
- FYI For your information...
-
- Hello-p
- A greeting, also meaning R U THERE? (An instance
-
-
-
- Page 9 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- of the "-P" convention.)
-
- MtFBWY
- May the Force be with you. (From Star Wars.)
-
- Nil No.
-
- OBTW Oh, by the way...
-
- R U There?
- Are you there?
-
- Sec Wait a second (sometimes written SEC...).
-
- T Yes.
-
- TNX Thanks.
-
- TNX 1.0E6
- Thanks a million (humorous).
-
- /\/\/\
- The equivalent of a giggle.
-
- [message]
- A message surrounded by square brackets "[]" is
- considered for information purposes or for
- explaining a users physical expression. Typical
- examples include:
-
- [Chuckle]
- The users is amused.
-
- [Confused]
- The user is confused on a particular subject.
-
- [Sigh]
- To indicate a sadness or "Sigh of relief".
-
- [To Restroom]
- The user will be away from the screen to take
- care of some business.
-
- SECURITY
- You may set your encryption password with the :set password
- command. This will allow you to communicate with other
- users that have their password set to the same as you in
- complete privacy.
-
- These messages will show up on other users terminals as
- [Encrypted Message] if the users has warncrypt set.
-
-
-
-
- Page 10 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- The default password is "Pax" and is used as the encryption
- password for sends and normal messages when you have your
- password set to the default.
-
- If you set your password in your .confrc file, remember to
- set the read/write mode of that file so that unwanted users
- cannot read the file. Same should hold true for setting a
- new password in the CONFOPTS environment variable.
-
- You should not set your password by using command line
- switches. Someone could possibly catch your password when
- they do a ps by reading the arguments to the conf you are
- executing. This may be taken care of in later releases of
- conf.
-
- CONF AND EMACS
- conf.el The conf users of conf are provided with a emacs
- lisp function that will allow them to run conf as a
- subprocess of emacs (if they compiled emacs with #define
- SUBPROCESSES). This gives the users several added features
- that they would not normally have without emacs.
-
- o The user may receive messages while he/she is
- typing messages.
-
- o Emacs will keep a transaction of all messages in
- the buffer "*conference*" which previous sends can
- be looked at if they were missed.
-
- o Auto-fill of incoming messages.
-
- o The "warm-fuzzy" -- emacs full screen editing.
-
- To use conf.el, copy it (probably from
- /usr/lib/conf/conf.el) into your .emacs file and M-X
- conference.
-
- FILES
- /usr/lib/conf/confhelp - Help file.
-
- /usr/lib/conf/conflog - Messages transaction file.
-
- /usr/lib/conf/confusers - User log file.
-
- BUGS
- Known Bugs:
- If a SIG_INT (^C) is done while messages are being
- saved to the record file, parts of the messages may be
- hacked off. This is a feature. fnord.
-
- Currently all message buffers that are encrypted (all
- but inform and shout) are multiples of 8 bytes long.
-
-
-
- Page 11 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- They are not padded and are not zeroed, so if someone
- were to hack on the conflog file to decipher messages,
- they may get tidbits (up to 7 chars) of the previous
- messages.
-
- Currently, sends are encrypted using the default
- password (so you may send to someone who doesn't know
- the password you are using.) Someone *could* hack on
- the conflog and decipher the private sends.
-
- I'm not too worried about the last two bugs. It would
- take much work if someone were to try to hack on the
- conflog file for either attempt. The users, may opt to
- use normal-messages and set their password to something
- besides the default. That is the safest form of
- message transfer I can think of.
-
- Both these problems should be taken care of in later
- releases.
-
- You can fake a message coming from a certain user if
- you know how someone has their format strings setup.
-
- I am open to suggestions for anything.
-
- Reporting bugs or suggestions:
- Please do not bother the net with bug reports/fixes.
- Send any bugs reports, fixes, or improvements to the
- author directly (ag@portnoy.cts.com or
- ag@crash.cts.com). I am always open to coherent
- suggestions or comments. Send me your gripes ... The
- worst I could do is ignore them :-).
-
- IMPROVEMENTS
- Several things are in the works. I have listed some major
- and minor improvements below.
-
- This documentation.
-
- Online documentation should include information about
- variables and more information about HOW TO.
-
- A better way to handle passwords. probably involving conf
- keeping a password list. That is, you would be able
- decipher any encrypted messages that you had a password for
- in your list, instead of only being able to decrypt one type
- of encrypted message at a time.
-
- There should be a way to set default settings for strings.
- So, if a user user really spazzes, they may reset to
- defaults. This can be taken care of (now) by logging out
- and re-logging into conf.
-
-
-
- Page 12 (printed 12/10/87)
-
-
-
-
-
-
- CONF(1) XENIX System V CONF(1)
-
-
-
- A Remote conf is being thought of, ideas here would be
- appreciated. Maybe conf could be a service on the remote
- site which would copy any file activity to the local site.
- Re-organizing the conflog structs to work on any machine
- would have to be done.
-
- The confusers files should be done with shared memory (if
- the system has it). This would allow conf to update the
- "memory" with information like idle time and such. The
- biggest problem with conf is that users cannot tell if a
- person is in the middle of typing a message or if a user has
- been shot and is slumped over the keys. I would think that
- this type of information would load the system down too much
- to do in a shared file, so idle time will be done in shared
- memory only. If anyone has any suggestions ...
-
- :ignore user/tty/sends/shouts will be implemented someday.
-
- Some way of hi-lighting text, probably using cryptic escape
- sequences. There is a definite need for highlighting in the
- format strings. People can fake messages from others. This
- can easily be overcome by changing the format string.
-
- Format strings should be checked for validity. Check '%m'
- and a linefeed at the end and warn if they don't exist.
-
- AUTHOR
- Keith M. Gabryelski (ag@portnoy.cts.com)
-
- Special thanks to:
-
- Michael Ditto (ford@kenobi.cts.com)
-
- Paul Palacios (paul@portnoy.cts.com)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 13 (printed 12/10/87)
-
-
-
- SHAR_EOF
- fi # end of overwriting check
- cd ..
- # End of shell archive
- exit 0
-
-